/*
*Universidad del Valle de Guatemala 
*victor fuentes 12298
* yucely beb 12537
* hoja de trabajo 7
*/

/*
Se utilizó referencia de libro de texto y de un ejemplo realizado por Luis Antonio Sigüenza.
*/

public class Heap<E>  {
    //Atributos de la clase
    private int caracteres;
    private Nodo[] elementos;
    private int numero;

    public Heap(int c) {
        this.caracteres = c;
        elementos =  new Nodo[c];
        numero = 0;
    }

    public Nodo head() {
        return elementos[numero-1];
    }
    
    public int getNumero() {
        return numero;
    }
    
    public int getCaracteres(){
        return caracteres;
    }
    
    public void add(Nodo item) {
        int j;

        if(numero == 0)
            elementos[numero++] = item;
        else {
            for(j=numero -1; j>=0; j--) {
                if(item.getFrecuencia() >= elementos[j].getFrecuencia())
                    elementos[j+1] = elementos[j];
                else
                    break;

            }

            elementos[j+1] = item;
            numero ++;
        }


    }
    public Nodo retirar() {
        numero=numero-1;
        return elementos[numero];
    }

    public Nodo retirar(Nodo nodo) {
        Nodo estado;
        for(int i =0; i < numero; i++) {
            if(elementos[i].getCaracter().toString().charAt(0) == nodo.getCaracter().toString().charAt(0)) {
                estado = elementos[i];
                elementos[i] = null;
                for(int j = i+1; j < numero; j++)
                    elementos[i] = elementos[j];
                numero=numero-1;
                return estado;
            }}return null;
    }
  
}

    
    
  
}